/***********************************************
*	名称:gf框架中间件
*	说明:gf框架的中间件工具(先Use的会包裹后Use)
*	作者:钱纯净
************************************************/

package middle

import (
	"github.com/gogf/gf/net/ghttp"
)

type Interface interface {
	Use(handlers ...ghttp.HandlerFunc)
}

// UseRequestLimit 使用限制
// @limit,限制数量
func UseRequestLimit(s Interface, limit int) {
	s.Use(NewRequestLimit(limit).Middle)
}

// UseCors 使用中间件跨域配置
func UseCors(s Interface) {
	s.Use(func(r *ghttp.Request) {
		r.Response.CORSDefault()
		r.Middleware.Next()
	})
}

// UseRequestLog 使用中间件接口请求日志
func UseRequestLog(s Interface) {
	h := newRequestLog()
	s.Use(func(r *ghttp.Request) {
		l := h.do(r)
		r.Middleware.Next()
		h.done(l)
	})
}
